<?php
namespace app\common\service;

/**
 * SysLogService 使用示例
 * Class SysLogExample
 * @package app\common\service
 */
class SysLogExample
{
    /**
     * 示例：记录用户添加操作
     * @param int $userId 用户ID
     * @param string $remarks 备注信息
     */
    public function addUserExample($userId, $remarks = '')
    {
        // 添加用户后，记录添加日志
        // 参数1: 操作对象（对应数据表或模块名称）
        // 参数2: 操作表的ID
        // 参数3: 备注信息
        SysLogService::addAddLog('用户管理', $userId, $remarks);
    }
    
    /**
     * 示例：记录用户修改操作，手动指定操作用户
     * @param int $userId 用户ID
     * @param string $remarks 备注信息
     * @param int $operatorId 操作人ID
     * @param string $operatorName 操作人姓名
     */
    public function updateUserExampleWithCustomOperator($userId, $remarks = '', $operatorId, $operatorName)
    {
        // 手动指定操作用户信息
        $userInfo = [
            'id' => $operatorId,
            'name' => $operatorName
        ];
        
        // 更新用户后，记录修改日志，并传入自定义操作用户信息
        SysLogService::addEditLog('用户管理', $userId, $remarks, $userInfo);
    }
    
    /**
     * 示例：记录用户删除操作
     * @param int $userId 用户ID
     */
    public function deleteUserExample($userId)
    {
        // 删除用户后，记录删除日志
        SysLogService::addDeleteLog('用户管理', $userId, '删除了ID为' . $userId . '的用户');
    }
    
    /**
     * 示例：记录文档操作，并获取当前用户信息
     * @param int $docId 文档ID
     * @param int $operationType 操作类型
     * @param string $remarks 备注信息
     */
    public function documentOperationExample($docId, $operationType, $remarks = '')
    {
        // 获取当前用户信息
        $currentUserInfo = SysLogService::getCurrentUserInfo();
        
        // 打印当前用户信息，用于调试
        // echo "当前用户ID: " . $currentUserInfo['id'] . ", 用户名: " . $currentUserInfo['name'];
        
        // 直接使用addLog方法，手动指定操作类型
        SysLogService::addLog('文档管理', $docId, $operationType, $remarks);
    }
    
    /**
     * 示例：查询系统日志
     * @param string $object 操作对象
     * @param int $page 页码
     * @param int $limit 每页数量
     * @return array
     */
    public function getLogListExample($object = '', $page = 1, $limit = 10)
    {
        $where = [];
        
        // 如果指定了操作对象，则添加到查询条件
        if (!empty($object)) {
            $where['object'] = $object;
        }
        
        // 查询日志列表
        return SysLogService::getLogList($where, $page, $limit);
    }
} 